<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="/vue_basic/js/vue.js"></script>
    <div id="root">
        <p>{{num}}</p>
        <!-- <cpn1></cpn1> -->
        <cpn2></cpn2>
    </div>


    <script>

        // 1.创建组件构造器(子组件)
        const cpnC1 = Vue.extend({
            template:
            `
                <div>
                    <h2>标题1</h2>
                    <p>内容1</p>
                </div>
            `
        })

        // 创建组件构造器(父组件)
        const cpnC2 = Vue.extend({
            template:
            `
                <div>
                    <h2>标题2</h2>
                    <p>内容2</p>
                    <cpn1></cpn1>
                </div>
            `,
            // 因为如果不在父组件中注册子组件,父组件在使用子组件时则无法识别到子组件,所以要在父组件的构造器中注册子组件
            
            //看清楚声明的位置，这里也可以诸恶组件，不是全局注册，也不是局部注册，而是某个组件内组成
            //某个组件内注册组件:不在全局中使用，可以在template模板中时使用组件
            //局部注册:看清楚作用域，哪里注册哪里使用
            //全局注册:全局都使用
            
            components:{
                cpn1:cpnC1 // 父子关系
            }
        })

        // 2.注册组件
        new Vue({
            el:'#root',
            data(){
                return{
                    num:1,
                }
            },
            methods: {
            },
            components:{
                cpn1:cpnC1,//现在是并列关系
                cpn2:cpnC2
            }
        })
    </script>
</body>
</html>